﻿/*
显示星期几 
Time Limit:1000MS  Memory Limit:32768K

  
	Description:
	针对输入的日期，输出对应的星期几。
	
Input:
第一个整数N表示后面有N个日期。其日期结构为“YYYY-MM-DD”。 
Output:
根据每个日期输出英文压缩星期几的名字。 
Sample Input:
3
2006-04-22
2006-04-28
2006-03-01
Sample Output:
Sat.
Fri.
Wed.
*/
/*
计算公元1583年及其以后某年的某月某日是星期几，
先把年份前两位数a除以4求余数，把余数乘以-2后，加上5，
所得的和称之为“世纪余数”；
再把年份末两位数b除以4求其商的整数部分，然后加上年份末两位数b，
所得的和除以7之后所得余数称之为“年届余数”；
再把每个月对应的一个数字，这个数字称之为“月余数”，
除闰年1月份和2月份所对应的数字分别是0和3之外，
平时1至12月份所对应的数字分别是1，4，4。0，2，5。0，3，6。1，4，6；
最后把所求这一日的“日期数”加上月份对应的“月余数”再加上“世纪余数”和“年届余数”，
求得这四个数字的和，再除以7，所得余数是几，这一天便是星期几，余数为0时则是星期日。

举个例子，计算1949年10月1日星期几，年份前两位数19除以4余数为3，余数3乘以-2加5得“世纪余数”为-1；
年份末两位数49除以4的商的整数部分是12，加上49（实际是7的倍数不必加），12除以7余5，
得“年届余数”为5；10月对应的“月余数”为1；
“日期数”+“月余数”+“世纪余数”+“年届余数”=1+1-1+5=6，
除以7之后所得余数为6，所以1949年10月1日是星期六。*/
/*
Odense N,Denmark,或发 E-mail 至 :kslarsen@imada.ou.dk。
让我们看看1752年9月14号这个星期四吧，我们的公式最远只能推算到这里了。
不过像“1963年11月22日你在哪里”这样的日常问题中提到的日期还是可以轻松应对的：
(22+2*11+3(11+1)/5+1963+1963/4--1963/100+1963/400) mod 7=(22+22+7+1963+490--19+4) mod 7=2489 mod 7=4。
那天就是星期五。
*/



#include <stdio.h>
class WeekDay
{
public:
	inline static void DayOfWeek(unsigned y, unsigned m, unsigned d)
	{
		unsigned index=sakamoto(y, m, d);
		output(index);
	}
protected:
	//Tomohiko Sakamoto
	inline static unsigned sakamoto(unsigned y, unsigned m, unsigned d)
	{
		static const int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
		y -= m < 3;
		return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;
	}
	//after 1583
	inline static unsigned estimate(unsigned y, unsigned m, unsigned d);
	
	//after 1752-9-14
	inline static unsigned kslarsen(unsigned y, unsigned m, unsigned d);
	static void output(unsigned index){printf("%s\n", weekdays[index]);}
private:
	static char *weekdays[];
};
char *WeekDay::weekdays[] = {"Sun.", "Mon.", "Tue.", "Wed.",
"Thurs.", "Fri.", "Sat."};

unsigned WeekDay::kslarsen(unsigned y, unsigned m, unsigned d)
{
	unsigned index;
	if (1u==m||2u==m)//1月和2月当作前一年的13月和14月处理
	{
		m+=12u;
		y--;
	}
	index=(d+2u*m+3u*(m+1u)/5u+y+y/4u-y/100u+y/400u)%7u+1;
	return (index+1u)%7u;
	
}
unsigned WeekDay::estimate(unsigned y, unsigned m, unsigned d)
{
	int rem[]={1, 4, 4, 0, 2, 5, 0, 3, 6, 1, 4 ,6};
	unsigned hi=y/100u, lo=y%100u;
	int tmp1=(int)hi%4, tmp2=lo/4;
	int cent=-tmp1-tmp1+5;
	int year=tmp2+lo;
	unsigned index=(cent+year+rem[m-1u]+d)%7;
	return index;

}
int main()
{
	unsigned y, m, d;
	unsigned n;
	scanf("%u", &n);
	while (n--)
	{
		scanf("%u-%u-%u", &y, &m, &d);
		WeekDay::DayOfWeek(y, m ,d);
	}

	return 0;
}